\contentsline {chapter}{Contents}{9}{Doc-Start}
\contentsline {chapter}{List of Figures}{13}{Doc-Start}
\contentsline {chapter}{List of Tables}{15}{Doc-Start}
\contentsline {chapter}{List of Abbreviations}{17}{Doc-Start}
\contentsline {chapter}{\numberline {1}Introduction}{19}{chapter.1}
\contentsline {section}{\numberline {1.1}Motivation of the thesis}{19}{section.1.1}
\contentsline {section}{\numberline {1.2}Goals of the thesis}{21}{section.1.2}
\contentsline {section}{\numberline {1.3}Structure of the thesis}{21}{section.1.3}
\contentsline {chapter}{\numberline {2}Electronic Petitions}{23}{chapter.2}
\contentsline {section}{\numberline {2.1}Introduction}{23}{section.2.1}
\contentsline {section}{\numberline {2.2}Historic frame}{23}{section.2.2}
\contentsline {section}{\numberline {2.3}Security challenges}{24}{section.2.3}
\contentsline {section}{\numberline {2.4}Legal background}{25}{section.2.4}
\contentsline {chapter}{\numberline {3}DAA protocol}{27}{chapter.3}
\contentsline {section}{\numberline {3.1}Notation}{27}{section.3.1}
\contentsline {section}{\numberline {3.2}Abstract Algebra}{28}{section.3.2}
\contentsline {subsection}{\numberline {3.2.1}Groups}{28}{subsection.3.2.1}
\contentsline {subsection}{\numberline {3.2.2}Strong RSA Assumption}{30}{subsection.3.2.2}
\contentsline {section}{\numberline {3.3}Signature Schemes}{30}{section.3.3}
\contentsline {section}{\numberline {3.4}Commitment schemes}{31}{section.3.4}
\contentsline {section}{\numberline {3.5}Zero knowledge proofs}{33}{section.3.5}
\contentsline {subsection}{\numberline {3.5.1}ZK proofs about discrete logarithms}{34}{subsection.3.5.1}
\contentsline {subsubsection}{\numberline {3.5.1.1}Schnorr protocol}{34}{subsubsection.3.5.1.1}
\contentsline {subsubsection}{\numberline {3.5.1.2}The Schnorr protocol based on the group $QR_n$}{35}{subsubsection.3.5.1.2}
\contentsline {section}{\numberline {3.6}Anonymous credentials}{36}{section.3.6}
\contentsline {subsection}{\numberline {3.6.1}Camenisch-Lysyanskaya signature}{37}{subsection.3.6.1}
\contentsline {subsection}{\numberline {3.6.2}Camenisch-Lysyanskaya anonymous credential scheme}{38}{subsection.3.6.2}
\contentsline {section}{\numberline {3.7}Simplified DAA protocol}{38}{section.3.7}
\contentsline {subsection}{\numberline {3.7.1}Introduction}{38}{subsection.3.7.1}
\contentsline {subsubsection}{\numberline {3.7.1.1}Pseudonyms}{40}{subsubsection.3.7.1.1}
\contentsline {subsubsection}{\numberline {3.7.1.2}Secret value}{40}{subsubsection.3.7.1.2}
\contentsline {subsubsection}{\numberline {3.7.1.3}Signature}{40}{subsubsection.3.7.1.3}
\contentsline {subsection}{\numberline {3.7.2}Final design}{41}{subsection.3.7.2}
\contentsline {subsubsection}{\numberline {3.7.2.1}Key generation}{41}{subsubsection.3.7.2.1}
\contentsline {subsubsection}{\numberline {3.7.2.2}Join protocol}{42}{subsubsection.3.7.2.2}
\contentsline {chapter}{\numberline {4}SmartCard}{45}{chapter.4}
\contentsline {section}{\numberline {4.1}Introduction}{45}{section.4.1}
\contentsline {section}{\numberline {4.2}Types of Smart Card}{47}{section.4.2}
\contentsline {subsection}{\numberline {4.2.1}Memory Cards}{47}{subsection.4.2.1}
\contentsline {subsection}{\numberline {4.2.2}Microprocessor cards}{47}{subsection.4.2.2}
\contentsline {section}{\numberline {4.3}Elements of a smart card}{48}{section.4.3}
\contentsline {subsection}{\numberline {4.3.1}Smart card file system}{49}{subsection.4.3.1}
\contentsline {section}{\numberline {4.4}Multiapplication smart card}{49}{section.4.4}
\contentsline {subsection}{\numberline {4.4.1}Application Identifier}{50}{subsection.4.4.1}
\contentsline {section}{\numberline {4.5}Global Platforms}{50}{section.4.5}
\contentsline {section}{\numberline {4.6}Data Transmission}{51}{section.4.6}
\contentsline {subsection}{\numberline {4.6.1}Transmission protocols: ``T=0'' and ``T=1''}{51}{subsection.4.6.1}
\contentsline {subsection}{\numberline {4.6.2}Application protocol data unit }{51}{subsection.4.6.2}
\contentsline {subsubsection}{\numberline {4.6.2.1}Command APDU's}{51}{subsubsection.4.6.2.1}
\contentsline {subsubsection}{\numberline {4.6.2.2}Response APDU}{52}{subsubsection.4.6.2.2}
\contentsline {subsection}{\numberline {4.6.3}Logic channels}{53}{subsection.4.6.3}
\contentsline {section}{\numberline {4.7}Belgium eID Card}{54}{section.4.7}
\contentsline {subsection}{\numberline {4.7.1}Card Descrption}{54}{subsection.4.7.1}
\contentsline {subsection}{\numberline {4.7.2}Cryptographic Details}{56}{subsection.4.7.2}
\contentsline {section}{\numberline {4.8}Java Card}{56}{section.4.8}
\contentsline {subsection}{\numberline {4.8.1}Java Card JVM}{57}{subsection.4.8.1}
\contentsline {subsection}{\numberline {4.8.2}Java Card Applet}{58}{subsection.4.8.2}
\contentsline {subsection}{\numberline {4.8.3}Security and visibility}{60}{subsection.4.8.3}
\contentsline {subsubsection}{\numberline {4.8.3.1}Package javacard.security}{60}{subsubsection.4.8.3.1}
\contentsline {subsubsection}{\numberline {4.8.3.2}Package javacardx.crypto}{61}{subsubsection.4.8.3.2}
\contentsline {chapter}{\numberline {5}Secure Socket Layer}{63}{chapter.5}
\contentsline {section}{\numberline {5.1}Description}{63}{section.5.1}
\contentsline {section}{\numberline {5.2}Operation}{64}{section.5.2}
\contentsline {section}{\numberline {5.3}Digital certificates}{66}{section.5.3}
\contentsline {subsection}{\numberline {5.3.1}X.509 certificates}{66}{subsection.5.3.1}
\contentsline {subsection}{\numberline {5.3.2}Elements of a X.509 v3 certificate}{67}{subsection.5.3.2}
\contentsline {chapter}{\numberline {6}Google Android}{71}{chapter.6}
\contentsline {section}{\numberline {6.1}What is Android?}{71}{section.6.1}
\contentsline {section}{\numberline {6.2}Android architecture}{71}{section.6.2}
\contentsline {subsection}{\numberline {6.2.1}Linux Kernel}{71}{subsection.6.2.1}
\contentsline {subsection}{\numberline {6.2.2}Core Libraries}{71}{subsection.6.2.2}
\contentsline {subsection}{\numberline {6.2.3}Dalv\IeC {\'\i }k Virtual Machine}{72}{subsection.6.2.3}
\contentsline {subsection}{\numberline {6.2.4}Libraries}{72}{subsection.6.2.4}
\contentsline {subsection}{\numberline {6.2.5}Application framework}{73}{subsection.6.2.5}
\contentsline {section}{\numberline {6.3}Android SDK}{73}{section.6.3}
\contentsline {section}{\numberline {6.4}Functionalities used in the project}{73}{section.6.4}
\contentsline {subsection}{\numberline {6.4.1}Browser pop-up}{73}{subsection.6.4.1}
\contentsline {subsubsection}{\numberline {6.4.1.1}Intents}{74}{subsubsection.6.4.1.1}
\contentsline {subsection}{\numberline {6.4.2}Android Wi-Fi Tether}{76}{subsection.6.4.2}
\contentsline {section}{\numberline {6.5}Smart cards in Android}{77}{section.6.5}
\contentsline {subsection}{\numberline {6.5.1}Development Kit's modules}{77}{subsection.6.5.1}
\contentsline {subsubsection}{\numberline {6.5.1.1}Smartcard API}{78}{subsubsection.6.5.1.1}
\contentsline {subsubsection}{\numberline {6.5.1.2}PC/SC lite}{78}{subsubsection.6.5.1.2}
\contentsline {subsubsection}{\numberline {6.5.1.3}MSC IFD Handler}{78}{subsubsection.6.5.1.3}
\contentsline {subsection}{\numberline {6.5.2}Security Considerations}{79}{subsection.6.5.2}
\contentsline {chapter}{\numberline {7}Designing an ePetitioning system with SmartCard Support}{81}{chapter.7}
\contentsline {section}{\numberline {7.1}Building up the system}{81}{section.7.1}
\contentsline {section}{\numberline {7.2}Overview of main operation}{82}{section.7.2}
\contentsline {section}{\numberline {7.3}Implementation}{84}{section.7.3}
\contentsline {subsection}{\numberline {7.3.1}Credential Issuer}{84}{subsection.7.3.1}
\contentsline {subsection}{\numberline {7.3.2}Petition Server}{84}{subsection.7.3.2}
\contentsline {subsection}{\numberline {7.3.3}Host}{84}{subsection.7.3.3}
\contentsline {subsection}{\numberline {7.3.4}Smart card applet}{84}{subsection.7.3.4}
\contentsline {subsubsection}{\numberline {7.3.4.1}Configuring Tomcat}{84}{subsubsection.7.3.4.1}
\contentsline {chapter}{\numberline {A}Android Applications}{85}{chapter.1}
\contentsline {section}{\numberline {A.1}Application components}{85}{section.1.1}
\contentsline {subsection}{\numberline {A.1.1}Activity}{85}{subsection.1.1.1}
\contentsline {subsection}{\numberline {A.1.2}Service}{86}{subsection.1.1.2}
\contentsline {subsection}{\numberline {A.1.3}BroadcastReceiver}{86}{subsection.1.1.3}
\contentsline {subsection}{\numberline {A.1.4}ContentProvider}{86}{subsection.1.1.4}
\contentsline {section}{\numberline {A.2}Types of application}{87}{section.1.2}
\contentsline {subsection}{\numberline {A.2.1}Task}{87}{subsection.1.2.1}
\contentsline {subsection}{\numberline {A.2.2}Process}{87}{subsection.1.2.2}
\contentsline {subsection}{\numberline {A.2.3}Thread}{87}{subsection.1.2.3}
\contentsline {section}{\numberline {A.3}Android Manifests}{88}{section.1.3}
\contentsline {section}{\numberline {A.4}Application Lifecycle}{88}{section.1.4}
\contentsline {chapter}{\numberline {B}Bouncy Castle}{91}{chapter.2}
\contentsline {section}{\numberline {B.1}Security providers}{91}{section.2.1}
\contentsline {section}{\numberline {B.2}Bouncy Castle main features}{92}{section.2.2}
\contentsline {chapter}{\numberline {C}How to set a client/server authenticated channel}{93}{chapter.3}
\contentsline {section}{\numberline {C.1}What is Tomcat?}{93}{section.3.1}
\contentsline {section}{\numberline {C.2}Directories}{93}{section.3.2}
\contentsline {section}{\numberline {C.3}Server.xml}{94}{section.3.3}
\contentsline {section}{\numberline {C.4}Setting up a HTTPS connection}{95}{section.3.4}
\contentsline {subsection}{\numberline {C.4.1}Tomcat's connector}{95}{subsection.3.4.1}
\contentsline {subsection}{\numberline {C.4.2}Host}{96}{subsection.3.4.2}
\contentsline {subsection}{\numberline {C.4.3}Generation and issuing of certificates}{96}{subsection.3.4.3}
\contentsline {subsection}{\numberline {C.4.4}Belgian electronic identity card's certificates}{100}{subsection.3.4.4}
\contentsline {chapter}{Bibliography}{101}{subsection.3.4.4}
